Optically encoded information, such as bar codes, have become quite common. A bar code symbol consists of a series of light and dark regions, typically in the form of rectangles. The widths of the dark regions, the bars, and/or the widths of the light spaces between the bars indicates the encoded information. A specified number and arrangement of these elements represents a character. Standardized encoding schemes specify the arrangements for each character, the acceptable widths and spacings of the elements the number of characters a symbol may contain or whether symbol length is variable, etc.
To decode a bar code symbol and extract a legitimate message, a bar code reader scans the symbol to produce an analog electrical signal representative of the scanned symbol. A variety of scanning devices are known. The scanner could be a wand type reader including an emitter and a detector fixedly mounted in the wand, in which case the user manually moves the wand across the symbol. Alternatively, an optical scanner scans a light beam such as a laser beam across the symbol, and a detector senses the light reflected from the symbol. In either case, the detector senses reflected light from a spot scanned across the symbol, and the detector provides the analog scan signal representing the encoded information.
A digitizer processes the analog signal to produce a pulse signal where the widths and spacings between the pulses correspond to the widths of the bars and the spacings between the bars. The digitizer serves as an edge detector or wave shaper circuit, and the threshold value set by the digitizer determines what points of the analog signal represent bar edges. The threshold level effectively defines what portions of a signal the reader will recognize as a bar or a space.
Readers of the type discussed above are single channel systems having a single digitizer output and/or a single processing chain to produce a single digitized output.
The pulse signal from the digitizer is applied to a decoder. The decoder first determines the pulse widths and spacings of the signal from the digitizer. The decoder then analyzes the widths and spacings to find and decode a legitimate bar code message. This includes analysis to recognize legitimate characters and sequences, as defined by the appropriate code standard. This may also include an initial recognition of the particular standard the scanned symbol conforms to. This recognition of the standard is typically referred to as autodiscrimination.
Different bar codes have different information densities and contain a different number of elements in a given area representing different amounts of encoded data. The denser the code, the smaller the elements and spacings. Printing of the denser symbols on a appropriate medium is exacting and thus is more expensive than printing low resolution symbols.
A bar code reader typically will have a specified resolution, often expressed by the size of its effective sensing spot. The resolution of the reader is established by parameters of emitter or the detector, by lenses or apertures associated with either the emitter or the detector, by the threshold level of the digitizer, by programming in the decoder, or by a combination of two or more of these elements.
In a laser beam scanner the effective sensing spot may correspond to the size of the beam at the point it impinges on the bar code. In a wand using an LED or the like, the spot size can be the illuminated area, or the spot size can be that portion of the illuminated area from which the detector effectively senses light reflections. By what ever means the spot size is set for a particular reader, the photodetector will effectively average the light detected over the area of the sensing spot.
In one prior art example, U.S. Pat. No. 4,675,531 to Clark et al., an LED illuminates the bar code and images the code onto a photodetector. The aperture of the photodetector determines the resolution or "spot size". In the Clarke et al. system the photodetector effectively averages the light detected over the area of the aperture.
A high resolution reader has a small spot size and can decode high density symbols. The high resolution reader, however, may have trouble accurately reading low density symbols because of the lower quality printing used for such symbols. This is particularly true of dot matrix type printed symbols. The high resolution reader may actually sense dot widths within a bar as individual bar elements. In contrast, a low resolution reader has a large spot size and can decode low density symbols. However, a reader for relatively noisy symbols such as dot matrix symbols reads such a wide spot that two or more fine bars of a high resolution symbol may be within the spot at the same time. Consequently, a reader having a low resolution, compatible with dot matrix symbols can not accurately read high density symbols. Thus any reader having a fixed resolution will be capable of reading bar codes only within a limited range of symbol densities.
For a given symbol density, the resolution of the reader also limits the range of the working angle, i.e. the angle between the axis of the reader and a line normal to of the surface on which the bar code is printed. If the range and resolution are too limited, a user may have difficulty holding the reader, particularly a wand type reader, comfortably while accurately scanning the bar code. This can be particularly troublesome if the wand incorporates additional elements to form an integrated data terminal. The combination of size, weight and an uncomfortable angle can make reading in large amounts of bar code information difficult and annoying, and thereby make the user more resistant to use of the bar code system.
One solution might be to provide some means to adjust the resolution or sensing spot size of the reader, e.g., by adjusting the threshold of the digitizer. This approach, however, would require a number of different scans at different resolutions. If the scan is automatic, the variation in resolution causes a loss of robustness because the scan is at the correct resolution only a reduced amount of the time. Effectively such a scanner would scan at the equivalent of a reduced rate. If the reader is a wand type device, the user would have to manually scan the reader across the information each time the resolution changes. This causes a marked reduction in the first read rate and increased frustration for the user.
Clearly a need exists in the art for a high performance bar code reader which can operate at a wide range of working angles and is capable of reading bar codes over a wide range of symbol densities.